package com.woniu.customer.service.impl;

import cn.hutool.core.util.IdUtil;
import com.woniu.common.entity.Result;
import com.woniu.customer.service.FtpService;
import com.woniu.customer.utils.FtpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Service
public class FtpServiceImpl implements FtpService {
    @Autowired
    FtpUtil ftpUtil;
    @Override
    public Result<String> uploadFile(MultipartFile file) throws IOException {
        //  文件必须有扩展名
        if (file.getOriginalFilename().lastIndexOf(".") == -1) { // 没有扩展名
            return new Result<>(500, "文件格式错误", null);
        }
        //  获取文件日期
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd");
        String formattedDate = formatter.format(new Date());

        //  获取文件扩展名
        String extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        //  生成文件名
        String id = String.valueOf(IdUtil.getSnowflake().nextId());
        // 创建一个新文件，使用新的文件名
        File newFile = new File(id + extName);
        // 将MultipartFile的内容写入新文件
//        File nfile = file.getResource().getFile();
//        file.transferTo(newFile);

        System.out.println("文件名："+file.getOriginalFilename());
        if (ftpUtil.uploadFile(file,id + extName,formattedDate)){
            return new Result<>(200,"上传成功",file.getOriginalFilename());
        }else {
            return new Result<>(500,"上传失败",null);
        }
    }
}
